In the field of data storage, in the situation in which a number of parties has access to a single store, it is necessary to manage the communication links between the parties and the store, and the allocation of storage space within the store, to the respective parties, in such a way that the integrity and a consistent view of the data is maintained.
The different parties may, for example, be individual personal computers, individual machines in a computer network, individual operating systems in a computer network or different processes within a single operating system. All such parties are designated “processes” in the following text.
In order to ensure the integrity of stored data, it is known in a conventional storage management system to employ a common store manager for managing the inter-process communication between the processes and the store. A block diagram of such a conventional storage management system is shown in FIG. 1. As shown, the system comprises a plurality of processes 10, designated process 1, process 2 . . . process N, in communication with a store 12 by way of respective communication links 14 via a store manager process 16. The store manager process 16 receives requests from the processes 10 by way of the communication links 14 to read and write data to the store 12, and is responsible for processing concurrent requests into a single queue of serial requests in which data integrity is preserved. In practice, the store manager process 16 employs a cache 18 as temporary memory capacity and will only update the store 12 at the end of a data commit cycle. This has the advantage of enhancing processing speed, since the cache is a relatively fast device by comparison with the store 12.
One disadvantage of the storage management system shown in FIG. 1 is that the inter-process communication in this type of system is not generally secure, so that it is possible for data to be intercepted and manipulated.
Another disadvantage of the storage management system shown in FIG. 1 is that it requires a separate additional process in the form of the store manager process, together with an associated cache, for managing the data storage.
Such a store manager process consumes resources and cycles of the central processing unit of the overall system, and the need to channel all the read and write requests from the different processes 10 into a separate additional process, all reduce the performance and speed of operation of the overall system. Further, the communication to the store manager process would require a communications protocol, which again adds a performance overhead. There may also be circumstances where it is uneconomical or impractical to supply a store manager process 16, for example in an existing computer system having a store 12 to which new processes 10 may be added but where no store manager process 16 currently exists.